Recent years have seen rapid development of video coding techniques. Generally, compression performance is improved along with an increase of encoding cost. H.264, as the newest joint standard of the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Picture Experts Group (MPEG), has achieved a significant improvement in coding efficiency compared to previous standards, such as MPEG-1/2/4 and H.261/H.263. However, the complexity of H.264 is too high to be widely applied in real-time applications. One reason for this is due to motion estimation (ME) operations, which contribute a significant amount of encoding complexity to a video encoder.
ME is used to achieve compression between adjacent frames in a video data sequence by exploiting temporal redundancies. In a sequence of video frames, a current frame is predicted from a previous frame known as reference frame. The current frame is divided into macroblocks of a certain pixel size, which is selected as a trade-off between accuracy and encoding cost. Each macroblock is compared to a macroblock in the reference frame using some error measure, and the best matching macroblock is selected. The search is conducted over a predetermined search area. A vector denoting the displacement of the macroblock in the reference frame with respect to the macroblock in the current frame, is determined. This vector is known as motion vector
There are two existing techniques used to reduce the encoding cost of ME. The first one is to speed up the algorithms themselves. For ME, numerous fast algorithms have been proposed, such as Hexagon-based Search (HBS), Enhanced Predictive Zonal Search (EPZS), and hybrid Unsymmetrical-cross Multi-Hexagon-grid Search (UMHexagonS). Another technique to reduce the encoding cost of ME is to terminate the ME calculation early. By predicting the blocks whose discrete cosine transform (DCT) coefficients will quantize to zeros, some conventional methods effectively reduce the computations of ME. On the other hand, a significant portion of blocks have a zero motion vector after ME. Existing zero-motion detection (ZMD) algorithms detect such blocks by comparing their sum of absolute difference (SAD) with a predefined threshold and then skips the remaining search points.
Unfortunately, the conventional early termination methods such as those described above are all developed for previous coding schemes, such as H.263. They cannot be applied to H.264 longer with any success. This is because compared to H.263, where only two block sizes (16×16 and 8×8) are used, video encoding techniques may choose different block sizes, and may vary the size of the blocks within a given frame. For instance, seven block sizes varying from 16×16 to 4×4 are used in H.264.
Accordingly, systems and methods to reduce the encoding complexity of motion estimation operations in a video encoding scheme that uses different block sizes, and may vary the size of the blocks within a given frame, would be very useful.